1. Field of Invention
This invention relates to a filter interface between a filter and a server in a document printing system. In particular, this invention is directed to a filter interface that allows a filter to send extracted attribute information to a server.
2. Description of Related Art
FIG. 1 shows an overview of the flow of document data and attribute information in a printing system. When the client 110 sends a print request to a server 120, the client 110 sends a document data package 200, as shown in FIG. 2. The document data package 200 includes master document data 220, which includes the text of the document, and document attribute data 210, which includes attribute information about the document. For example, the document attribute data 210 includes paper size (in this case, A3), the number of images printed onto one page (in this case, 2-up) as shown in FIG. 2. Other attribute information may include client source, page numbers, user name, job name, etc.
When the server 120 receives the print request, the server 120 stores the document attribute data 210 into the attribute database 130. The server 120 then invokes the filter 140. The server 120 then sends the master document data 220 and the requested attribute information (the document attribute data 210 may be included) to the filter 140.
After filtering, the filter 140 sends modified document data back to the server 120. The server 120 then sends the modified document data to the printer 160 as a print job. After completing the print job, the printer 160 sends a report back to the server 120. After the server 120 receives the report from the printer 160, the server 120 extracts document attribute information needed for the account log 150 from the attribute database 130 and writes that information to the account log 150.
FIG. 3 shows the interaction between the server 120 and the filter 140. The process of the server 120 is different from that of the filter 140. The filter is registered with the server 120 using a filter definition 310. The server 120 invokes the filter 140, based on the command element of the filter definition 310. When the server 120 invokes the filter 140, the server 120 checks the command element in the filter definition 310. If some attribute names (in this case, number-up and content orientation) are found in the command element, the server 120 sends the attribute information corresponding to each attribute name to the filter 140 as the argument of the command. Thus, the filter 140 gets the attribute information needed to perform the operation from the command line found in the filter definition 310. The input data and output data are sent and received using a pipeline between the server 120 and the filter 140. The filter 140 gets the master document data 220 from the standard input and sends the modified document data to the standard output.
According to the above description, the filter 140 can get attribute information (e.g., number-up, content orientation, etc.) indicated in the command element of the filter definition 310. However, the filter 140 has no way to send attribute information that has been extracted in the filtering operation back to the server 120.
In addition, all attribute information which needs to be written to the account log 150 is not always included in the attribute information 210 that the client 110 sends to the server 120 or the attribute database 130. Some needed attribute information (e.g., medium-size) may be embedded in the master document data 220. However, the filter 140 does not have any way to send the extracted attribute information to the server 120 or to the attribute database 130. Therefore, some attribute information may not be properly written into the account log 150. Thus, the account log 150 cannot keep the exact attribute information regarding the print job and the document.